package com.xjh.basestudy.designmode.createMode.createMode2_Prototype.p2_shallowClone;

import java.util.Random;

/**
 * @Author XuJianHua
 * @Date 2022/9/24 11:23
 * @Description 敌机克隆工厂类定义完毕，客户端代码就留给读者自己去实践了。
 * 但需要注意，一定得使用“懒加载”的方式，如此既可以节省内存空间，又可以确保敌机的实例化速度，实现敌机的即时性按需克隆，这样游戏便再也不会出现卡顿现象了。
 */
public class Client {
    public static void main(String[] args) throws CloneNotSupportedException {
        // 只创建一个实例，剩下的全部克隆
        EnemyPlane instance = EnemyPlaneFactory.getInstance(new Random().nextInt(200));
        for (int i = 0; i < 3; i++) {
            //  注意这里调了clone方法；
            // 不同的飞机有不同的hashcode，说明克隆成功
            EnemyPlane clone = instance.clone();
            System.out.println("飞机编号：" + i + "。飞机hashcode:" + clone.hashCode());
        }

    }

}
